'''
Created on 5 dec. 2014

@author: Damien Torond et Geoffrey Sentost
Module BorneTicket
'''

from modele import Client, Ticket
from vue import EcranBorne

'''
import des modules Client, Ticket et EcranBorne.
'''

class BorneTicket:
    
    '''
    La classe BorneTicket va simuler les actions de la borne qui delivrera les tickets
    au client.
    '''

    def __init__(self):
        '''
        Constructeur de la classe BorneTicket.
        Attributs:
            - nbTicket initialise a 1000, nombre de tickets de la borne.
            - ecran instance de la classe EcranBorne.  
        '''
        self.nbTickets = 1000
        self.ecran = EcranBorne.EcranBorne()
    
          
    def getEstVide(self):
        '''
        Methode : accesseur de l'attribut nbTicket qui retourne celui-ci quand il est inferieur
        a 0.
        '''
        return (self.nbTickets <= 0)
      
   
    def getEcran(self):
        '''
         Methode : accesseur de l'attribut ecran qui retourne celui-ci.
        '''
        return self.ecran
    
    
    def demanderCarte(self, client, bdd):
        '''
         Methode : On doit passer en parametre une instance de la classe client et de la base de 
         donnees.
         
         On verifie la carte par rapport a la base de donnees.
        ''' 
        client.insererCarte(bdd) #verifie carte
   
        
    def delivrerTicket(self, voiture, bdd):
        '''
         Methode : On doit passer en parametre une instance de la classe voiture  et 
         de la base de donnees.
         
         On va delivrer le ticket au client avec les informations de la base de donnees
         puis decrementer le nombre de billets.
        ''' 
        ticketEnCours = Ticket.Ticket(voiture.getPlacement())
        self.nbTickets = self.nbTickets - 1
        client = voiture.getProprietaire()
        client.recevoirTicket(bdd) 
             
    